<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    let name = "xiaohui";
    let grades = [
      { name: "chinese", score: 87 },
      { name: "math", score: 99 },
    ];
    function average(grades, name) {
      /**
        *reduce是数组方法，接收四个值，第一个值是一个累计器，返回回调的返回值
        第二个值是当前正在处理的值
        第三个是当前正在处理的数组
        最后一个值是第一个值的初始化，如果没有初始值就会默认使用数组的第一个元素
        */
      let total = grades.reduce((p, i) => p + i.score, 0);
      //   模板字符串
      console.log(`${name}的平均成绩是${total / grades.length}`);
    }
    average(grades, name);

    // 对象的创建
    // 使用字面量
    const user = {
      name: "xiaomei",
      grade: [
        { name: "english", score: 80 },
        { name: "history", score: 100 },
      ],
      average: function () {
        let total = this.grade.reduce((p, i) => p + i.score, 0);
        return `${this.name}的平均成绩是${total / this.grade.length}`;
      },
    };
    console.log(user.average());

    // 对象的增加
    user.age = 18;
    user.ageInfo = function () {
      return `${this.name}的年龄是${this.age}岁`;
    };
    console.log(user.ageInfo());

    // 对象属性的删除
    delete user.age;
    console.log(user.age);
  </script>
</html>
